class: center background-image: url("data:image/png;base64,#Imagenes/AB2_0102.jpg") background-position: center background-size: contain # Similitud de comunidades ### Carlos Ivan Espinosa #### enero de 2022 --- class: inverse, center, middle # Introducción -- La composición y estructura de la comunidad varía a lo largo de los gradientes ambientales como consecuencias de cambio en la tolerancia de las especies. -- <br></br> Esto produce cambios en la composición de la comunidad (las especies que la constituyen) y en la estructura (las abundancias de las especies) --- ## ¿Cómo podemos diferenciar las comunidades a la largo de un gradiente? -- <div class="figure" style="text-align: center"> <img src="data:image/png;base64,#presentacion_files/figure-html/com-1.png" alt="Ejemplo de la variación de una comunidad" /> <p class="caption">Ejemplo de la variación de una comunidad</p> </div> --- # Parece sencillo, tenemos un gradiente muy claro #### Pero, ¿qué pasa cuando tenemos un gradiente no tan claro? -- class: center  --- # Cuanto se parecen dos comunidades Dos elementos se parecen más cuando sus propiedades son más parecidas. -- .pull-left[ <img src="data:image/png;base64,#Imagenes/Comunidad.png" width="450" height="450" /> ] -- .pull-right[ <br></br> ## ¿Qué comunidad es más parecida? El cálculo de _similitud_ nos permite _cuantificar_ en qué medida dos comunidades se parecen. ] --- # Medidas distintas -- .pull-left[ ### Comparación entre dos comunidades __Similitud__: cuanto se parecen dos comunidades entres si. Se puede calcular basado en presencia ausencia o en abundancia. `$$A - B$$` `$$B - C$$` ] .pull_right[ ### Comparación entre mas de dos comunidades Cuán lejanas se encuentran las comunidades entre ellas, distancias relativas vistas en conjunto. Se puede calcular basado en __Distancias__ o en __Disimilitud__ `$$A-B-C$$` ] --- class: inverse, center, middle # Índices de Similitud Los índices de similitud nos permiten cuantificar cuanto se parecen dos comunidades entre sí. Estos índices se pueden calcular basados en incidencia (presencia-ausencia de especies) (ej. Índices de *Sorensen*, *Jaccard* y *Simpson*), y basados en la abundancia, *Porcentaje de Similitud*. --- # Entendiendo la similitud Imaginemos que tenemos cuatro localidades (A, B, C, D) con cuatro especies; *Tabebuia billbergii*, *Geoffroea spinosa*,*Ceiba trichistandra* y *Colicodendron scabridum*. Generamos un gráfico basado en las dos primeras especies para ver cuánto se parece cada sitio. .pull-left[ <div class="figure" style="text-align: center"> <img src="data:image/png;base64,#presentacion_files/figure-html/unnamed-chunk-2-1.png" alt="Similitud de cuatro localidades hipotéticas" /> <p class="caption">Similitud de cuatro localidades hipotéticas</p> </div> ] -- .pull-right[ Cada especie es una variable que nos ayuda a definir cuanto se parecen las comunidades ] --- # Índices cualitativos Los índices de incidencia estan basados en presencia-ausencia de especies. A continuación veremos tres diferentes índices: -- > <small>$$S_s= \frac{(2c)}{(a+b+2c)}$$ Índice de Sorensen</small> > > <small>$$S_s= \frac{(c)}{(a+b+c)}$$ Índice de Jaccard</small> > > <small>$$S_s= \frac{(c)}{c+min(a+b)}$$ Índice de Simpson</small> -- Donde *c* es el número de especies en común entre los dos sitios, *a* y *b* son el número de especies únicas en cada sitio. --- # Calculando los índices .pull-left[ ```r comp <- dens comp[comp>0] <- 1 #Generamos una matriz de presencia ausencia comp ``` ``` ## T.bil G.spi C.tri C.sca ## A 1 1 1 1 ## B 1 1 1 0 ## C 1 1 1 1 ## D 1 1 1 1 ``` ```r a <- sum(colSums(comp[1:2,])==1&comp[2,]==0)#Ocurren en A pero no en B b <- sum(colSums(comp[1:2,])==1&comp[1,]==0)#Ocurren en B pero no en A c <- sum(colSums(comp[1:2,])==2) #ocurren en A y B ``` ] .pull-right[ ```r Sor <- (2*c)/(a+b+(2*c)) Jac <- c/(a+b+c) Sim <- c/c+min(a,b) Sor; Jac; Sim ``` ``` ## [1] 0.8571429 ``` ``` ## [1] 0.75 ``` ``` ## [1] 1 ``` ] --- # Índices cuantitativos El *porcentaje de similitud* es la versión cuantitativa del índice de Sorensen. Este índice está basado en datos de abundancia y es calculado como: -- > <small>$$S_s= \frac{(2W)}{A+B}$$ Porcentaje de Similitud</small> -- Donde; _W_ es la sumatoria del valor mínimo de la abundancia entre las comunidades comparadas para cada especie. _A_ y _B_ es la suma de las abundancias de todas las especies en cada sitio. --- #Calculando los índices Table: Medidas para obtener el porcentaje de Similitud | T.bil| G.spi| C.tri| C.sca| Medidas|Tipo | |-----:|-----:|-----:|-----:|-------:|:----| | 1| 21| 11| 16| 49|A | | 1| 8| 3| 0| 12|B | | 1| 8| 3| 0| 12|W | -- Ahora, obtenemos el porcentaje de similitud ```r PS <- (2*MatPS[3,5])/(MatPS[1,5]+MatPS[2,5]) PS ``` ``` ## [1] 0.3934426 ``` --- class: inverse, center, middle # Distancias entre sitios Las distancias entre sitios es la cara opuesta de la similitud, en este caso valores más altos de distancia implica que las comunidades son más diferentes entre sí. Normalmente las distancias son utilizadas para comparar múltiples comunidades a la vez. --- # Tipos de distancias Existen dos tipos de distancias, que se diferencian por como se calculan las distancias. -- - __Disimilitud:__ son distancias calculadas a partir de los índices de similitud usualmente como: $$D = 1-Similitud. $$ -- - __Distancias:__ aquellas que no tienen medidas de similitud análogas, algunos de estos índices son; Euclidiana, Chord, Hellinger. --- # Distancia Euclidiana La distancia euclidiana entre dos sitios es la longitud del vector que conecta los sitios y la podemos obtener como `$$\sqrt{x^2+y^2}$$` Donde *"x"* y *"y"* son las coordenadas (x, y) de distancia entre un par de sitios. .pull-left[ ```r dens ``` ``` ## T.bil G.spi C.tri C.sca ## A 1 21 11 16 ## B 1 8 3 0 ## C 2 13 7 9 ## D 3 5 5 4 ``` La distancia en cada eje es la diferencia en la abundancia de cada especie entre el sitio B y C. ] .pull-right[ ```r x <- dens[2, 1] - dens[3, 1] x ``` ``` ## [1] -1 ``` ```r y <- dens[2, 2] - dens[3, 2] y ``` ``` ## [1] -5 ``` ```r sqrt(x^2 + y^2) ``` ``` ## [1] 5.09902 ``` ] --- ## Efecto de doble-ceros y abundancia Aunque la distancia Euclidiana es fácilmente interpretable, pero esta fuertemente impactada por los dobles ceros Table: Efecto del doble cero | | spp1| spp2| spp3| sp4| spp5| spp6| |:--|----:|----:|----:|---:|----:|----:| |A | 1| 1| 0| 0| 0| 0| |B | 0| 1| 1| 1| 1| 0| |C | 0| 0| 0| 0| 1| 1| -- Estos datos nos muestran un claro gradiente. Desde el punto de vista biológico espararíamos que las distancias sean: $$ A-B-C$$ --- # Calculando la distancia Los índices deberían permitir recuperar ese gradiente, veamos lo que pasa. ```r library(vegan) vegdist(dcMat, "euclidean") ``` ``` ## A B ## B 2 ## C 2 2 ``` -- El doble cero de la comunidad A y C generan una mayor similitud, de esta forma, las tres comunidades son mostradas a igual distancia. --- # El doble cero es informativo o no -- .pull-left[ ### Cero no informativo Datos biológicos, el cero puede deberse a: que aunque la especie ocurre en ese lugar no pudo ser muestreada, o no ocurre en ese lugar por restricciones abióticas. ] -- .pull-right[ ### Cero informativo En datos abióticos el cero implica la ausencia de algo, por ejemplo tener cero mg de un contaminante es una información. ] --- # Efecto de la abundancia La distancia euclidiana es fuertemente impactada por la diferencia de abundancias. El cálculo de esta distancia eleva al cuadrado las abundancias, incrementando el efecto de las especies dominantes. Veamos a qué nos referimos en el siguiente ejemplo. Table: Efecto de la abundancia | | spp1| spp2| spp3| |:--|----:|----:|----:| |A | 0| 1| 1| |B | 1| 0| 0| |C | 0| 8| 7| -- Esperaríamos que las comunidades A y C esten aproximadamente a la misma distancia de B. --- # Calculemos las distancias Table: Efecto de la abundancia | | spp1| spp2| spp3| |:--|----:|----:|----:| |A | 0| 1| 1| |B | 1| 0| 0| |C | 0| 8| 7| ```r vegdist(dcMat2, "euclidean") ``` ``` ## A B ## B 1.732051 ## C 9.219544 10.677078 ``` La comunidad C es muy distinta a las demás. --- # Distancia Bray-Curtis En ecología una de las distancias más utilizada es la de *Bray-Curtis*, esta distancia es el opuesto del porcentaje de similitud. Es calculada como: `$$D_{BC} = \sum_{i=l}^R \frac{(x_{ai} - x_{bi})}{(x_{ai} + x_{bi})}$$` La distancia *Bray-Curtis* se refiere a la diferencia total en la abundancia de especies entre dos sitios, dividido para la abundancia total en cada sitio. --- # Representación gráfica Como se había comentado, es virtualmente imposible representar una distancia en más de tres dimensiones (cada especie es una dimensión). Una forma sencilla de mostrar distancias para tres o más especies es crear un gráfico de dos dimensiones, intentando organizar todos los sitios para que las distancias sean aproximadamente las correctas.  --- # Transformación y Estandarización de datos Cuando trabajamos con datos multivariantes los datos podrían tener diferencias de magnitud importantes. Como vimos antes, el cálculo de distancia entre los sitios puede verse fuertemente afectado por la magnitud de sus diferencias. -- Las diferencias entre sitios son dependientes de la abundancia de cada especie. En el caso de *G. spinosa* su eje varía entre 5 y 21, mientras que para *T. billbergii* varía entre 1 y 3. Veamos ahora que sucede con las similitud si incremento la abundancia de *T. billbergii*.  --- #Abundancia relativa Una forma de corregir esta distorsión es calcular la densidad relativa de cada especie, de esta forma cada especie variará entre 0 y 1 [@Stevens2009]. Para calcular la densidad relativa dividimos la abundancia de cada especie para la suma total de los individuos de las especies en esa muestra. -- ```r dens[,1]/sum(dens[,1]) ``` ``` ## [1] 0.1428571 0.1428571 0.2857143 0.4285714 ``` ```r dens1[,1]/sum(dens1[,1]) ``` ``` ## [1] 0.1428571 0.1428571 0.2857143 0.4285714 ``` -- Ahora podemos ver cómo *T. billbergii* varía en su abundancia en los cuatro sitios. Los sitios A y B tienen el 14% de individuos mientras que el D tiene el 42% de los individuos de esta especie. -- Interesantemente, no hay diferencias en las proporciones entre las dos medidas que tenemos. ¿Qué pasó con las distancias? --- # Distancias con datos de densidad relativa  Cuando estoy usando la densidad relativa no hay diferencias entre las dos comunidades. -- ¿Qué implicaciones biológicas tiene el usar las densidades relativas para calcular la distancia entre sitios? -- Cuando usamos las densidades relativas estamos dando el mismo peso a todas las especies. --- ## Transformación de datos Esta claro que la magnitud de las diferencias entre las variables tiene un impacto sobre el cálculo de la distancia. La transformación de datos implica una modificación de los datos brutos a través de una ecuación algebraica. -- __La transformación de datos implica una modificación independientemente para cada dato, no existe influencia del resto de datos. __ -- Table: Comunidad de macroinvertebrados acuáticos |LOCALIDAD | Allu| Atop| Atri| Baet| Bezz| Blep| Cera| Chel| Chim| Chir| Cole| |:---------|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:| |Bo-1 | 0| 0| 0| 6| 0| 1| 0| 1| 3| 18| 4| |Bo-2 | 0| 0| 0| 3| 0| 0| 0| 0| 1| 9| 0| |Bo-3 | 0| 0| 0| 6| 0| 0| 1| 1| 1| 9| 0| |BP-1 | 0| 3| 0| 81| 0| 0| 0| 0| 0| 27| 0| |BP-2 | 0| 0| 0| 9| 0| 0| 0| 0| 2| 0| 0| |BP-3 | 0| 0| 0| 54| 0| 0| 1| 0| 0| 9| 0| |Pa-1 | 1| 0| 0| 984| 0| 0| 0| 0| 0| 81| 0| |Pa-2 | 0| 0| 0| 15| 0| 0| 0| 0| 1| 9| 0| |Pa-3 | 0| 0| 0| 93| 1| 0| 0| 0| 0| 18| 0| |Ur-1 | 0| 0| 0| 6| 0| 0| 0| 0| 0| 855| 0| |Ur-2 | 0| 0| 1| 12| 0| 0| 0| 1| 0| 9| 0| |Ur-3 | 0| 0| 0| 0| 10| 0| 0| 0| 0| 27| 0| --- #Transformación de datos Existen varias posibilidades para transformar los datos, por lo que definir que función utilizar es importante. Cada tipo de transformación produce resultados distintos por lo que debemos utilizarlas con precaución. -- Exiten diferentes niveles de transformación: -- 1. La raíz cuadrada; diferencias con variaciones de una magnitud de diferencia (entre decenas y centenas) -- 2. La raíz cuarta 3. Logaritmo: comunidades donde hay más de una magnitud de diferencia (entre decenas y miles) Transformaciones muy fuertes en una matriz con pocas diferencias pueden hacer que, las especies raras tengan igual peso que las dominantes, ¿esto es lo que queremos? --- __Recuerde: las diferentes transformaciones tienen interpretaciones biológicas distintas. Debemos ser conscientes de lo que estamos haciendo y de su posterior interpretación biológica.__ --- Veamos un ejemplo: Table: Efecto de la transformación. Pequeñas diferencias | sp1.| sp2.| sp1.sqrt| sp2.sqrt| sp1.log| sp2.log| |----:|----:|--------:|--------:|-------:|-------:| | 75| 201| 8.66| 14.18| 4.32| 5.30| | 51| 229| 7.14| 15.13| 3.93| 5.43| | 3| 228| 1.73| 15.10| 1.10| 5.43| | 71| 183| 8.43| 13.53| 4.26| 5.21| | 44| 134| 6.63| 11.58| 3.78| 4.90| | 58| 208| 7.62| 14.42| 4.06| 5.34| | 89| 147| 9.43| 12.12| 4.49| 4.99| | 56| 200| 7.48| 14.14| 4.03| 5.30| | 30| 224| 5.48| 14.97| 3.40| 5.41| | 62| 249| 7.87| 15.78| 4.13| 5.52| --- Ahora veamos que pasa con mayores diferencias Table: Efecto de la transformación, Grandes diferencias | sp1.| sp2.| sp1.sqrt| sp2.sqrt| sp1.log| sp2.log| |----:|----:|--------:|--------:|-------:|-------:| | 36| 1202| 6.00| 34.67| 3.58| 7.09| | 51| 2428| 7.14| 49.27| 3.93| 7.79| | 48| 2088| 6.93| 45.69| 3.87| 7.64| | 73| 1303| 8.54| 36.10| 4.29| 7.17| | 19| 1151| 4.36| 33.93| 2.94| 7.05| | 26| 1891| 5.10| 43.49| 3.26| 7.54| | 96| 2338| 9.80| 48.35| 4.56| 7.76| | 68| 1396| 8.25| 37.36| 4.22| 7.24| | 53| 1979| 7.28| 44.49| 3.97| 7.59| | 58| 2339| 7.62| 48.36| 4.06| 7.76| --- ## Estandarización de los datos La estandarización de los datos permite modificar las variables transformándolas en unidades de desviación típica, lo que nos permite comparar entre valores de distribuciones normales diferentes, o de valores diferentes. La estandarización o tipificación se lo realiza restando a cada valor el valor medio de la variable y dividiendo para la desviación estándar. ```r avesE <- (aves[,1]-mean(aves[,1]))/sd(aves[,1]) avesE ``` ``` ## [1] 0.86745705 -0.11922395 -2.09258597 0.70301022 -0.40700592 0.16855801 ## [7] 1.44302097 0.08633459 -0.98256984 0.33300484 ``` ```r round(mean(avesE),1);sd(avesE) ``` ``` ## [1] 0 ``` ``` ## [1] 1 ``` Como vemos las variables estandarizadas tienen como propiedad que la desviación estándar es 1 y la media es 0. ```